# ifndef __Status_H_
# define __Status_H_

struct point_t;

extern HWND g_hStatusWnd;

bool InitStatusWindow ();
void DestroyStatusWindow ();

void ResetStatus ();
void SetStatusReady ();
void SetStatus (const char * _strStatus);
void SetProgressStatus (int _iProgress);
void SetPositionStatus (const point_t & _pt);
void SetScaleStatus (float _Scale);

class CProgressBar {
  public:
	CProgressBar (size_t _cFrom, size_t _cTo);

	void SetValue (size_t _cValue) const;
	void SetValueRange (size_t _cFromValue, size_t _cToValue);

	CProgressBar GetSubBar (size_t _cFromValue, size_t _cToValue) const;
	CProgressBar GetNextSubBar (size_t _cLengthValue) const;

  private:
	size_t Progress (size_t _cValue) const;

	size_t m_cProgressFrom;
	size_t m_cProgressTo;

	size_t m_cValueFrom;
	size_t m_cValueTo;

	mutable size_t m_cLastProgress;
	mutable size_t m_cLastSubBarValue;
};

# endif // __Status_H_